package com.rural.bus.view;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.rural.bus.R;

/**
 * 通用对话框
 * 
 * @author Peanut
 */
public class CommonAlertDialog extends Dialog implements View.OnClickListener {
	private TextView tv_msg;
	private Button btn_confirm;
	private Button btn_cancel;
	private String message;
	private OnDialogDismissListener onDialogDismissListner;
	private LinearLayout linearlayout_button_division;
	private String confirm_msg;
	private String cancel_msg;

	public interface OnDialogDismissListener {
		void onConfirmClicked();

		void onCancelClicked();
	}

	/**
	 * @param context
	 *            context
	 * @param confirm_msg
	 *            确认按钮文字
	 * @param cancel_msg
	 *            取消按钮文字
	 * @param msg
	 *            主要内容
	 * @param listner
	 *            回调接口
	 * 
	 */
	public CommonAlertDialog(Context context, String confirm_msg, String cancel_msg, String msg, OnDialogDismissListener listner) {
		super(context, R.style.common_alert_dialog);

		this.message = msg;
		this.onDialogDismissListner = listner;
		this.confirm_msg = confirm_msg;
		this.cancel_msg = cancel_msg;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.view_common_dialog);
		initView();
	}

	private void initView() {
		tv_msg = (TextView) findViewById(R.id.tv_msg);
		btn_confirm = (Button) findViewById(R.id.btn_confirm);
		btn_cancel = (Button) findViewById(R.id.btn_cancel);
		btn_confirm.setOnClickListener(this);
		btn_cancel.setOnClickListener(this);
		tv_msg.setText(message);

		linearlayout_button_division = (LinearLayout) findViewById(R.id.linearlayout_button_division);

		if (confirm_msg == null) {
			btn_confirm.setVisibility(View.GONE);
			linearlayout_button_division.setVisibility(View.GONE);
		} else {
			btn_confirm.setText(confirm_msg);
		}

		if (cancel_msg == null) {
			btn_cancel.setVisibility(View.GONE);
			linearlayout_button_division.setVisibility(View.GONE);
		} else {
			btn_cancel.setText(cancel_msg);
		}
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_confirm:
			if (onDialogDismissListner != null) {
				dismiss();
				onDialogDismissListner.onConfirmClicked();
			}
			break;
		case R.id.btn_cancel:
			if (onDialogDismissListner != null) {
				dismiss();
				onDialogDismissListner.onCancelClicked();
			}
			break;
		}
	}

}
